package chapter14;

import org.junit.Test;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author : DuJiabao
 * @Date : 2021/2/25 8:10
 * @Project : thinking_in_java
 * @File : null.java
 * @Desc :
 */
public class GenericClassReferences {
  public static void main(String[] args) throws Exception {
    Class intClass = int.class;
    Class<Integer> genericIntClass = int.class;  // 指定了泛型
    genericIntClass = Integer.class;  // 与上面是相同的东西
    intClass = double.class;  // 没有指定泛型的，可以随意切换Class对象
    //genericIntClass = double.class;  // 指定了泛型了，不能切换成其他Class对象

    Class<? extends List> listClass = ArrayList.class;
    List list = listClass.getDeclaredConstructor().newInstance();
  }

  @Test
  public void test() {
    Class<?> clazz = int.class;
    clazz = double.class;
  }

}
